package com.weitu.securitycheck.service;

import com.weitu.securitycheck.entity.CheckInfo;
import com.weitu.securitycheck.entity.CheckInfoCriteria;

import java.util.List;

public interface CheckInfoService {
    /**
     * 根据条件查询数量
     *
     * @param example 条件对象
     * @return 数量
     */
    int countByCriteria(CheckInfoCriteria example);

    /**
     * 根据主键查询实体
     *
     * @param id 主键id
     * @return 实体
     */
    CheckInfo selectByPrimaryKey(String id);

    /**
     * 根据条件查询列表
     *
     * @param example 条件对象
     * @return 数据列表
     */
    List<CheckInfo> selectByCriteria(CheckInfoCriteria example);

    /**
     * 根据主键删除一条数据
     *
     * @param id 主键
     * @return 受影响的行数
     */
    int deleteByPrimaryKey(String id);

    /**
     * 根据主键选择性的更新数据
     *
     * @param record 记录
     * @return 受影响的行数
     */
    int updateByPrimaryKeySelective(CheckInfo record);

    /**
     * 根据条件选择性的更新数据
     *
     * @param record  记录
     * @param example 条件对象
     * @return 受影响的行数
     */
    int updateByCriteriaSelective(CheckInfo record, CheckInfoCriteria example);

    /**
     * 选择性的插入一条数据
     *
     * @param record 记录
     * @return 受影响的行数
     */
    int insertSelective(CheckInfo record);

    /**
     * 保存附件和插入检查信息数据
     *
     * @param checkInfo 参数实体
     * @return 是否成功
     */
    boolean saveAccessoryAndInsert(CheckInfo checkInfo);

    /**
     * 保存附件和更新检查信息数据
     *
     * @param checkInfo 参数实体
     * @return 是否成功
     */
    boolean saveAccessoryAndUpdate(CheckInfo checkInfo);

    /**
     * 根据所有已关联检查信息的checkPlanId
     * @param id 检查信息id
     */
    List<String> selectCheckPlanIds(String id);
}